<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    /*
      class 关键字，定义类
        只是一个语法糖，只是让对象原型的写法更加清晰，更像面向对象编程的语法而已

        类的数据类型是函数，类本身就是构造函数

        constructor(), 就是构造方法, this 关键字代表当前实例对象
        类内部定义的方法: 
          1. 不能加逗号, 否则会报错
          2. 类的所有方法都定义在类的 prototype 属性上面
    */

    // ES5 时候
    // function Point(x, y) {
    //   this.x = x;
    //   this.y = y;
    // }
    // Point.prototype.toString = function() {
    //   return `(${this.x}, ${this.y})`;
    // }
    // var p = new Point(1, 2)
    // console.log(p)

    // ES6 时
    class Point {
      constructor(x, y) {
        this.x = x;
        this.y = y;
      }

      toString() {
        return `(${this.x}, ${this.y})`;
      }
    }
    var p01 = new Point(1, 2)
    console.log(p)
  </script>
</body>
</html>